/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.senac.digipao.servlet;

import br.com.senac.digipao.bean.Fornecedor;
import br.com.senac.digipao.dao.FornecedorDao;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Arianne Mussi
 */
public class PesquisaFornecedorServlet extends HttpServlet {

   
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        String operacao = request.getParameter("operacao");

        if (operacao.equals("Pesquisar")) {
            // pegando os parâmetros do request
            //String parametro = request.getParameter("pesquisa");      
            String parametro = request.getParameter("pesquisaFornecedor");
            try {
                FornecedorDao dao= new FornecedorDao();
             
                List<Fornecedor> listaFornecedor = dao.listaFornecedoresPorParametro(parametro);

                if (listaFornecedor.size() > 0) {
                    request.getSession().setAttribute("ListaFornecedor", listaFornecedor);
                }

                RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/resultadoPesquisaFornecedor.jsp");
                rd.forward(request, response);

            } catch (SQLException ex) {
                Logger.getLogger(PesquisaFornecedorServlet.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        else if (operacao.equals("Alterar")) {
            //recupera valor do idUsuario do radio button selecionado
            int idFornecedor = Integer.parseInt(request.getParameter("select"));
            //recupera lista de usuários da sessão
            List<Fornecedor> listaFornecedor = (List<Fornecedor>) request.getSession(true).getAttribute("ListaFornecedor");
            
            //verifica se lista foi recuperada da sessão
            if (listaFornecedor != null && listaFornecedor.size() > 0 ) {
            //procura na lista qual foi o usuario selecionado e quando encontra, salva na sessão como "ClienteParaAlterar"
                for (int i = 0 ; i <= listaFornecedor.size() ; i++)  {
                    if (listaFornecedor.get(i).getIdFornecedor() == idFornecedor) {
                        request.getSession().setAttribute("FornecedorParaAlterar", listaFornecedor.get(i));
                        break;
                   }
                }
            
            } else {
                try {
                    //se não foi encontrada a lista, busca usuário do banco
                    FornecedorDao dao = new FornecedorDao();   
                    request.getSession().setAttribute("FornecedorParaAlterar", dao.buscaFornecedorPorId(idFornecedor));
                } catch (SQLException ex) {
                    Logger.getLogger(PesquisaFornecedorServlet.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            
            RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/alteraCadastroFornecedor.jsp");
            rd.forward(request, response);
         }

        else if (operacao.equals("Deletar")) {
     
            try {
                FornecedorDao  dao = new FornecedorDao();
                dao.excluiFornecedorPorId(Integer.parseInt(request.getParameter("select")));
            } catch (SQLException ex) {
                Logger.getLogger(PesquisaUsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            request.getSession().removeAttribute("ListaFornecedor");

            RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/excluidoComSucesso.jsp");
            rd.forward(request, response);

        }
        
        else if (operacao.equals("PesquisarNovamente")) {
            
            request.getSession().removeAttribute("ListaFornecedor");
            RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/pesquisaFornecedor.jsp");
            rd.forward(request, response);
            
        }
        else {
            request.getSession().removeAttribute("FornecedorParaAlterar");
            request.getSession().removeAttribute("ListaFornecedor");
            RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/menuPrincipal.jsp");
            rd.forward(request, response);
        }
    }
}
